@delorenj/mcp-server-trello 1.6.1 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export interface TrelloCheckItem {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
state: 'complete' | 'incomplete';
|
|
5
|
+
pos: number;
|
|
6
|
+
due?: string | null;
|
|
7
|
+
dueReminder?: number | null;
|
|
8
|
+
idMember?: string | null;
|
|
9
|
+
}
|
|
10
|
+
export interface TrelloChecklist {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
idCard: string;
|
|
14
|
+
pos: number;
|
|
15
|
+
checkItems: TrelloCheckItem[];
|
|
16
|
+
}
|
|
17
|
+
export interface TrelloLabelDetails {
|
|
18
|
+
id: string;
|
|
19
|
+
idBoard: string;
|
|
20
|
+
name: string;
|
|
21
|
+
color: string;
|
|
22
|
+
}
|
|
23
|
+
export interface TrelloComment {
|
|
24
|
+
id: string;
|
|
25
|
+
date: string;
|
|
26
|
+
data: {
|
|
27
|
+
text: string;
|
|
28
|
+
card?: {
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
memberCreator: {
|
|
34
|
+
id: string;
|
|
35
|
+
fullName: string;
|
|
36
|
+
username: string;
|
|
37
|
+
avatarUrl?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface TrelloCustomField {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
type: string;
|
|
44
|
+
value?: any;
|
|
45
|
+
}
|
|
46
|
+
export interface TrelloBadges {
|
|
47
|
+
attachmentsByType?: {
|
|
48
|
+
trello?: {
|
|
49
|
+
board: number;
|
|
50
|
+
card: number;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
location: boolean;
|
|
54
|
+
votes: number;
|
|
55
|
+
viewingMemberVoted: boolean;
|
|
56
|
+
subscribed: boolean;
|
|
57
|
+
fogbugz: string;
|
|
58
|
+
checkItems: number;
|
|
59
|
+
checkItemsChecked: number;
|
|
60
|
+
checkItemsEarliestDue?: string | null;
|
|
61
|
+
comments: number;
|
|
62
|
+
attachments: number;
|
|
63
|
+
description: boolean;
|
|
64
|
+
due?: string | null;
|
|
65
|
+
dueComplete: boolean;
|
|
66
|
+
start?: string | null;
|
|
67
|
+
}
|
|
68
|
+
export interface TrelloCover {
|
|
69
|
+
idAttachment?: string | null;
|
|
70
|
+
color?: string | null;
|
|
71
|
+
idUploadedBackground?: string | null;
|
|
72
|
+
size: 'normal' | 'full';
|
|
73
|
+
brightness: 'light' | 'dark';
|
|
74
|
+
isTemplate: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface EnhancedTrelloCard {
|
|
77
|
+
id: string;
|
|
78
|
+
name: string;
|
|
79
|
+
desc: string;
|
|
80
|
+
descData?: {
|
|
81
|
+
emoji?: Record<string, any>;
|
|
82
|
+
};
|
|
83
|
+
due: string | null;
|
|
84
|
+
dueComplete: boolean;
|
|
85
|
+
dueReminder: number | null;
|
|
86
|
+
start: string | null;
|
|
87
|
+
idList: string;
|
|
88
|
+
idBoard: string;
|
|
89
|
+
closed: boolean;
|
|
90
|
+
url: string;
|
|
91
|
+
shortUrl: string;
|
|
92
|
+
dateLastActivity: string;
|
|
93
|
+
pos: number;
|
|
94
|
+
labels: TrelloLabelDetails[];
|
|
95
|
+
idLabels: string[];
|
|
96
|
+
attachments: TrelloAttachment[];
|
|
97
|
+
checklists: TrelloChecklist[];
|
|
98
|
+
members: TrelloMember[];
|
|
99
|
+
idMembers: string[];
|
|
100
|
+
comments: TrelloComment[];
|
|
101
|
+
customFieldItems?: TrelloCustomField[];
|
|
102
|
+
badges: TrelloBadges;
|
|
103
|
+
cover: TrelloCover;
|
|
104
|
+
list?: {
|
|
105
|
+
id: string;
|
|
106
|
+
name: string;
|
|
107
|
+
};
|
|
108
|
+
board?: {
|
|
109
|
+
id: string;
|
|
110
|
+
name: string;
|
|
111
|
+
url: string;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export declare class EnhancedTrelloClient {
|
|
115
|
+
getCard(cardId: string, includeMarkdown?: boolean): Promise<EnhancedTrelloCard | string>;
|
|
116
|
+
private formatCardAsMarkdown;
|
|
117
|
+
private formatFileSize;
|
|
118
|
+
}
|
|
119
|
+
export declare function validateGetCardRequest(args: Record<string, unknown>): {
|
|
120
|
+
cardId: string;
|
|
121
|
+
includeMarkdown?: boolean;
|
|
122
|
+
};
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// Enhanced get_card implementation for comprehensive data extraction
|
|
2
|
+
// Add to TrelloClient class
|
|
3
|
+
export class EnhancedTrelloClient {
|
|
4
|
+
async getCard(cardId, includeMarkdown = false) {
|
|
5
|
+
return this.handleRequest(async () => {
|
|
6
|
+
const response = await this.axiosInstance.get(`/cards/${cardId}`, {
|
|
7
|
+
params: {
|
|
8
|
+
attachments: true,
|
|
9
|
+
checklists: 'all',
|
|
10
|
+
checkItemStates: true,
|
|
11
|
+
members: true,
|
|
12
|
+
membersVoted: true,
|
|
13
|
+
labels: true,
|
|
14
|
+
actions: 'commentCard',
|
|
15
|
+
actions_limit: 100,
|
|
16
|
+
fields: 'all',
|
|
17
|
+
customFieldItems: true,
|
|
18
|
+
list: true,
|
|
19
|
+
board: true,
|
|
20
|
+
stickers: true,
|
|
21
|
+
pluginData: true
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const cardData = response.data;
|
|
25
|
+
if (includeMarkdown) {
|
|
26
|
+
return this.formatCardAsMarkdown(cardData);
|
|
27
|
+
}
|
|
28
|
+
return cardData;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
formatCardAsMarkdown(card) {
|
|
32
|
+
let markdown = '';
|
|
33
|
+
// Title and basic info
|
|
34
|
+
markdown += `# ${card.name}\n\n`;
|
|
35
|
+
// Board and List context
|
|
36
|
+
if (card.board && card.list) {
|
|
37
|
+
markdown += `📍 **Board**: [${card.board.name}](${card.board.url}) > **List**: ${card.list.name}\n\n`;
|
|
38
|
+
}
|
|
39
|
+
// Labels
|
|
40
|
+
if (card.labels && card.labels.length > 0) {
|
|
41
|
+
markdown += `## 🏷️ Labels\n`;
|
|
42
|
+
card.labels.forEach(label => {
|
|
43
|
+
markdown += `- \`${label.color}\` ${label.name || '(no name)'}\n`;
|
|
44
|
+
});
|
|
45
|
+
markdown += '\n';
|
|
46
|
+
}
|
|
47
|
+
// Due date
|
|
48
|
+
if (card.due) {
|
|
49
|
+
const dueDate = new Date(card.due);
|
|
50
|
+
const status = card.dueComplete ? '✅ Complete' : '⏰ Due';
|
|
51
|
+
markdown += `## 📅 Due Date\n${status}: ${dueDate.toLocaleString()}\n\n`;
|
|
52
|
+
}
|
|
53
|
+
// Members
|
|
54
|
+
if (card.members && card.members.length > 0) {
|
|
55
|
+
markdown += `## 👥 Members\n`;
|
|
56
|
+
card.members.forEach(member => {
|
|
57
|
+
markdown += `- @${member.username} (${member.fullName})\n`;
|
|
58
|
+
});
|
|
59
|
+
markdown += '\n';
|
|
60
|
+
}
|
|
61
|
+
// Description
|
|
62
|
+
if (card.desc) {
|
|
63
|
+
markdown += `## 📝 Description\n`;
|
|
64
|
+
markdown += `${card.desc}\n\n`;
|
|
65
|
+
// Parse for inline images (Trello uses markdown-like syntax)
|
|
66
|
+
// Look for patterns like 
|
|
67
|
+
const imageRegex = /!\[([^\]]*)\]\(([^)]+)\)/g;
|
|
68
|
+
const images = card.desc.match(imageRegex);
|
|
69
|
+
if (images) {
|
|
70
|
+
markdown += `### Inline Images in Description\n`;
|
|
71
|
+
images.forEach((img, index) => {
|
|
72
|
+
const match = img.match(/!\[([^\]]*)\]\(([^)]+)\)/);
|
|
73
|
+
if (match) {
|
|
74
|
+
markdown += `${index + 1}. ${match[1] || 'Image'}: ${match[2]}\n`;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
markdown += '\n';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Checklists
|
|
81
|
+
if (card.checklists && card.checklists.length > 0) {
|
|
82
|
+
markdown += `## ✅ Checklists\n`;
|
|
83
|
+
card.checklists.forEach(checklist => {
|
|
84
|
+
const completed = checklist.checkItems.filter(item => item.state === 'complete').length;
|
|
85
|
+
const total = checklist.checkItems.length;
|
|
86
|
+
markdown += `### ${checklist.name} (${completed}/${total})\n`;
|
|
87
|
+
// Sort by position
|
|
88
|
+
const sortedItems = [...checklist.checkItems].sort((a, b) => a.pos - b.pos);
|
|
89
|
+
sortedItems.forEach(item => {
|
|
90
|
+
const checkbox = item.state === 'complete' ? '[x]' : '[ ]';
|
|
91
|
+
markdown += `- ${checkbox} ${item.name}`;
|
|
92
|
+
if (item.due) {
|
|
93
|
+
const itemDue = new Date(item.due);
|
|
94
|
+
markdown += ` (Due: ${itemDue.toLocaleDateString()})`;
|
|
95
|
+
}
|
|
96
|
+
if (item.idMember) {
|
|
97
|
+
const member = card.members?.find(m => m.id === item.idMember);
|
|
98
|
+
if (member) {
|
|
99
|
+
markdown += ` - @${member.username}`;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
markdown += '\n';
|
|
103
|
+
});
|
|
104
|
+
markdown += '\n';
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// Attachments
|
|
108
|
+
if (card.attachments && card.attachments.length > 0) {
|
|
109
|
+
markdown += `## 📎 Attachments (${card.attachments.length})\n`;
|
|
110
|
+
card.attachments.forEach((attachment, index) => {
|
|
111
|
+
markdown += `### ${index + 1}. ${attachment.name}\n`;
|
|
112
|
+
markdown += `- **URL**: ${attachment.url}\n`;
|
|
113
|
+
if (attachment.fileName) {
|
|
114
|
+
markdown += `- **File**: ${attachment.fileName}`;
|
|
115
|
+
if (attachment.bytes) {
|
|
116
|
+
const size = this.formatFileSize(attachment.bytes);
|
|
117
|
+
markdown += ` (${size})`;
|
|
118
|
+
}
|
|
119
|
+
markdown += '\n';
|
|
120
|
+
}
|
|
121
|
+
if (attachment.mimeType) {
|
|
122
|
+
markdown += `- **Type**: ${attachment.mimeType}\n`;
|
|
123
|
+
}
|
|
124
|
+
markdown += `- **Added**: ${new Date(attachment.date).toLocaleString()}\n`;
|
|
125
|
+
// Image preview
|
|
126
|
+
if (attachment.previews && attachment.previews.length > 0) {
|
|
127
|
+
const preview = attachment.previews[0];
|
|
128
|
+
markdown += `- **Preview**: \n`;
|
|
129
|
+
}
|
|
130
|
+
markdown += '\n';
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
// Comments
|
|
134
|
+
if (card.comments && card.comments.length > 0) {
|
|
135
|
+
markdown += `## 💬 Comments (${card.comments.length})\n`;
|
|
136
|
+
card.comments.forEach(comment => {
|
|
137
|
+
const date = new Date(comment.date);
|
|
138
|
+
markdown += `### ${comment.memberCreator.fullName} (@${comment.memberCreator.username}) - ${date.toLocaleString()}\n`;
|
|
139
|
+
markdown += `${comment.data.text}\n\n`;
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
// Statistics
|
|
143
|
+
if (card.badges) {
|
|
144
|
+
markdown += `## 📊 Statistics\n`;
|
|
145
|
+
if (card.badges.checkItems > 0) {
|
|
146
|
+
markdown += `- **Checklist Items**: ${card.badges.checkItemsChecked}/${card.badges.checkItems} completed\n`;
|
|
147
|
+
}
|
|
148
|
+
if (card.badges.comments > 0) {
|
|
149
|
+
markdown += `- **Comments**: ${card.badges.comments}\n`;
|
|
150
|
+
}
|
|
151
|
+
if (card.badges.attachments > 0) {
|
|
152
|
+
markdown += `- **Attachments**: ${card.badges.attachments}\n`;
|
|
153
|
+
}
|
|
154
|
+
if (card.badges.votes > 0) {
|
|
155
|
+
markdown += `- **Votes**: ${card.badges.votes}\n`;
|
|
156
|
+
}
|
|
157
|
+
markdown += '\n';
|
|
158
|
+
}
|
|
159
|
+
// Links
|
|
160
|
+
markdown += `## 🔗 Links\n`;
|
|
161
|
+
markdown += `- **Card URL**: ${card.url}\n`;
|
|
162
|
+
markdown += `- **Short URL**: ${card.shortUrl}\n\n`;
|
|
163
|
+
// Metadata
|
|
164
|
+
markdown += `---\n`;
|
|
165
|
+
markdown += `*Last Activity: ${new Date(card.dateLastActivity).toLocaleString()}*\n`;
|
|
166
|
+
markdown += `*Card ID: ${card.id}*\n`;
|
|
167
|
+
return markdown;
|
|
168
|
+
}
|
|
169
|
+
formatFileSize(bytes) {
|
|
170
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
171
|
+
if (bytes === 0)
|
|
172
|
+
return '0 Bytes';
|
|
173
|
+
const i = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
174
|
+
return Math.round(bytes / Math.pow(1024, i) * 100) / 100 + ' ' + sizes[i];
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Validator for the get_card request
|
|
178
|
+
export function validateGetCardRequest(args) {
|
|
179
|
+
if (!args.cardId || typeof args.cardId !== 'string') {
|
|
180
|
+
throw new Error('cardId is required and must be a string');
|
|
181
|
+
}
|
|
182
|
+
const includeMarkdown = args.includeMarkdown === true || args.includeMarkdown === 'true';
|
|
183
|
+
return {
|
|
184
|
+
cardId: args.cardId,
|
|
185
|
+
includeMarkdown
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
// Add to index.ts tool list
|
|
189
|
+
const getCardTool = {
|
|
190
|
+
name: 'get_card',
|
|
191
|
+
description: 'Get comprehensive details of a specific Trello card including checklists, attachments, labels, members, and comments',
|
|
192
|
+
inputSchema: {
|
|
193
|
+
type: 'object',
|
|
194
|
+
properties: {
|
|
195
|
+
cardId: {
|
|
196
|
+
type: 'string',
|
|
197
|
+
description: 'ID of the Trello card (can be short ID or full ID)',
|
|
198
|
+
},
|
|
199
|
+
includeMarkdown: {
|
|
200
|
+
type: 'boolean',
|
|
201
|
+
description: 'Return the card data formatted as markdown (default: false)',
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
required: ['cardId'],
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
// Add to the switch statement in index.ts
|
|
208
|
+
/*
|
|
209
|
+
case 'get_card': {
|
|
210
|
+
const validArgs = validateGetCardRequest(args);
|
|
211
|
+
const cardData = await this.trelloClient.getCard(
|
|
212
|
+
validArgs.cardId,
|
|
213
|
+
validArgs.includeMarkdown
|
|
214
|
+
);
|
|
215
|
+
return {
|
|
216
|
+
content: [{
|
|
217
|
+
type: 'text',
|
|
218
|
+
text: typeof cardData === 'string'
|
|
219
|
+
? cardData
|
|
220
|
+
: JSON.stringify(cardData, null, 2)
|
|
221
|
+
}],
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
*/
|
|
225
|
+
//# sourceMappingURL=get-card-implementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-card-implementation.js","sourceRoot":"","sources":["../src/get-card-implementation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED